#ifndef _InputData_included_
#define _InputData_included_

#include "common.h"
#include "Matrix.h"
#include "ConsumptionModel.h"

class Matrix;

class InputData{
	public:
		InputData(string);
		~InputData();
		Matrix* ReadTracks(short,UINTN,UINTN);
		Matrix* ReadTexts(ConsumptionModel*,short);
		Matrix* ReadTexts(UINTN,UINTN,ConsumptionModel*,short);
		inline uint32_t getNTrack(){
			return ntrack;
		}
		inline uint32_t getNSample(){
			return nsample;
		}
		inline uint8_t getSampleSize(){
			return FormatToSize(sample_format);
		}
		inline uint8_t getTrackSize(){
			return track_size;
		}
		inline char getSampleFormat(){
			return sample_format;
		}
		inline uint8_t getTextSize(){
			return text_size;
		}
		static UINTN FormatToSize(char);
	private:
		uint32_t ntrack;
		uint32_t nsample;
		uint32_t rnsample;
		char sample_format;
		uint8_t text_size;
		UINTN track_size;
		string file_path;
		ifstream InputFile;
};

#endif
